Operations Anti-patterns, DevOps Solutions by Jeffery D. Smith

Operations Anti-patterns, DevOps Solutions by Jeffery D. Smith

Author:Jeffery D. Smith [Smith, Jeffery D.]
Language: eng
Format: epub
Publisher: Manning Publications Co.
Published: 0101-01-01T00:00:00+00:00


7.7.3 Complexity in tasks

All problems and their subsequent tasks have varying levels of complexity. Cooking is a perfect example. I’m a lousy cook. But depending on what I’m cooking, various levels of complexity may exist. Cooking chicken tenders is much simpler than cooking raw chicken.

Being able to order and categorize the complexity of a task has value because it gives us a starting point to think about how the task is approached. You don’t need a ton of prep work to cook chicken tenders, but you might add a little extra time when cooking raw chicken for the first time.

To understand these issues a bit better, it often helps to use a framework of some sort to understand and give language to concepts. For this case, I’ll borrow from David Snowden’s Cynefin framework.1

NOTE The Cynefin framework, used as a decision-making tool, offers various domains. The definitions for his domains apply to this complexity conversation.

The Cynefin framework allows you to place the complexity of the problem into one of four contexts. The names for these contexts are simple, complicated, complex, and chaotic. For teaching purposes, I’m going to limit my usage to the first three contexts because addressing the chaotic is probably worth its own book and not something that general automation tips could reliably reason about.

Simple tasks

Simple tasks are those that have a handful of variables, but those variables are well-known and well understood. The way the values of the variables impact the necessary steps is also well understood.

An example might be installing a new piece of software. The variables might be your operating system type and the version of the operating system you’re running. Both variables, when changed, might impact the steps that you need to take to get the software installed. But because these values and their impact are well understood, they can be enumerated and documented ahead of time to help someone install the software for all supported operating system types.

As an example, the steps to download database software differ based on your operating system. If you’re using the RedHat-based operating system, you might need to download and install the software via an RPM package. If you’re using Windows Server, you might download an MSI installer. Despite these being two different methods to get the software installed, their steps are still well understood and can be detailed ahead of time.

Complicated tasks

Complicated tasks have numerous steps that are not easy or straightforward. They require various levels of expertise, but once you’ve done it, the task is often repeatable. An example might be manually promoting a database server from a secondary to the primary. Several steps require gathering more information as input to later tasks, so distilling the steps into simple tasks can be somewhat difficult.

Using the database server promotion example, you might have several decision points. If the slave database server you intend to promote is not fully in sync with the master, you might need to take a series of actions that then alter the steps necessary to perform the database promotion.



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.